#Utility to show captured packets with scapy
#Usage: python dump.py <INPUT FILE>

import sys
import scapy.all


def getARPwhohas(pkt):
	if pkt['ARP'].op == 1:
		return (pkt['ARP'].psrc, pkt['ARP'].pdst)
	else:
		raise Exception()
		
		
def getARPisat(pkt):
	if pkt['ARP'].op == 2:
		return (pkt['ARP'].psrc, pkt['ARP'].pdst)
	else:
		raise Exception()



if __name__ == '__main__':
	
	#Archivo de entrada: formato .pcap
	input_pcap = sys.argv[1]

	#Archivo de salida: por defecto es una imagen .svg
	output_img = sys.argv[2]

	result = scapy.all.rdpcap(input_pcap)

	#Genera el grafo con las IP
	result.conversations( getsrcdst = getARPwhohas, target = "-o whohas"+ output_img )
	result.conversations( getsrcdst = getARPisat, target = "-o isat"+ output_img )
